Wideband code division multiple access (WCDMA) systems that support high speed downlink packet access (HSDPA) may utilize encryption when communicating information wirelessly between a mobile terminal and mobile network. HSDPA is supported by a protocol reference model (PRM) that comprises a plurality of protocol layers. Each layer in the protocol reference model may perform a subset of tasks that are required to enable a mobile terminal to communicate to the mobile network. The radio link control (RLC) layer may be utilized to perform a plurality of tasks related to data transfer and maintenance of the QoS as defined by higher layer. The RLC layers may support 3 types of service modes: transparent mode (TM), unacknowledged mode data (UMD), and acknowledged mode data (AMD) transfer.
The transparent mode (TM) service mode may enable transmission of data as a data block, which is transparent to the RLC layer. Consequently, a TM data block that is received at the RLC layer may be passed to an upper/lower layer protocol in the PRM without removing/adding any RLC header information from/to the received TM data. The RLC layer does not inspect or process any of the data contained in the TM data block.
In the unacknowledged mode data (UMD) service mode on the transmitter side, the RLC layer performs concatenation/segmentation of data blocks received from a higher layer protocol, and adds a sequence number that enables in-sequence delivery at a receiver. The data may also be encrypted. At the receiver, this process may be reversed in the RLC layer. The RLC sequence number enables the RLC layer at the receiver to detect if a transmitted RLC data block was not received. However, a receiving end (mobile terminal or network) that receives a UMD data block does not provide any indication to the transmitter that the UMD data block was not received by the intended recipient. The UMD data block may comprise a header portion that is utilized by the RLC layer, and a payload, or data, portion that may be utilized by an upper layer protocol.
In the acknowledged mode data (AMD) service mode, the RLC layer performs functions that may be equivalent to functions performed in the UMD service mode. In the AMD service mode, however, when an RLC data block is received, the receiver may send an acknowledgment (ACK) message to the transmitter. When the receiver detects that a transmitted RLC data block has not been received, a negative acknowledgment (NACK) message may be sent to the transmitter. The transmitter may respond to a received NACK message by retransmitting one or more previously transmitted RLC data blocks. In the AMD service mode, an RLC protocol entity in a receiver that receives an AMD data block may provide an indication to a corresponding RLC entity in a transmitter that the AMD data block was received by the intended recipient. This additional capability for the AMD service mode, may be referred to as a retransmission function. The AMD data block may comprise an RLC header portion that is utilized by the RLC layer, and a payload, or data, portion that may be utilized by an upper layer protocol.
When ciphering and/or deciphering TM data blocks, UMD data blocks, and/or AMD data blocks, the header portion is generally not encrypted or decrypted. The header portion may comprise an RLC header and/or a medium access control layer header (MAC). A MAC layer header, or MAC header, is as defined in 3GPP WCDMA/HSDPA standards. Consequently, a processor that encrypts a TM, UMD, and/or AMD data block may be required to locate the start of the data portion within the corresponding data block. However, among the various data blocks, the location of the start of the data portion may differ. The processor may be required to compute an offset to locate the start of the data portion for each data block processed. The data blocks may be stored in external memory. The external memory may comprise a plurality of addressable locations wherein each location may access a data word. The stored data blocks may be word-aligned such that the respective data blocks comprise an integer number of data words. The location of the start of the data portion in a data block, however, may not be coincident with a data word boundary.
In some conventional systems, the processor may utilize software and/or manipulate memory pointers to enable ciphering and/or deciphering operations to begin at the start of the data portion of the data block. This may result in slow processing times that may not be optimal for various high-speed operations,
Further limitations and disadvantages of conventional and traditional approaches will become apparent to one of skill in the art, through comparison of such systems with some aspects of the present invention as set forth in the remainder of the present application with reference to the drawings.